Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ

Node / meshtastic / Meshtastic-Android / files / .github / agents / speckit.implement.agent.md

Displaying Rendered β€’ View raw β€’ Download

.github/agents/speckit.implement.agent.md gh-readonly-queue/main/pr-5954-e8fb0d3632384411e1ab015c806a2ae3631fcc42 (3b09b6ac) Text, 10.47 KB

description: Execute the implementation plan by processing and executing all tasks defined in tasks.md

User Input

T282828
$ARGUMENTS

You MUST consider the user input before proceeding (if not empty).

Pre-Execution Checks

Check for extension hooks (before implementation):
β€’ Check if T383838.specify/extensions.yml exists in the project root.
β€’ If it exists, read it and look for entries under the T383838hooks.before_implement key
β€’ If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
β€’ Filter out hooks where T383838enabled is explicitly T383838false. Treat hooks without an T383838enabled field as enabled by default.
β€’ For each remaining hook, do not attempt to interpret or evaluate hook T383838condition expressions:
β€’ If the hook has no T383838condition field, or it is null/empty, treat the hook as executable
β€’ If the hook defines a non-empty T383838condition, skip the hook and leave condition evaluation to the HookExecutor implementation
β€’ For each executable hook, output the following based on its T383838optional flag:
β€’ Optional hook (T383838optional: true):
T282828
## Extension Hooks

**Optional Pre-Hook**: {extension}
Command: \`/{command}\`
Description: {description}

Prompt: {prompt}
To execute: \`/{command}\`
β€’ Mandatory hook (T383838optional: false):
T282828
## Extension Hooks

**Automatic Pre-Hook**: {extension}
Executing: \`/{command}\`
EXECUTE_COMMAND: {command}
Wait for the result of the hook command before proceeding to the Outline.
β€’ If no hooks are registered or T383838.specify/extensions.yml does not exist, skip silently

Outline

1. Run T383838.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks from repo root and parse FEATUREDIR and AVAILABLEDOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").

2. Check checklists status (if FEATURE_DIR/checklists/ exists):
β€’ Scan all checklist files in the checklists/ directory
β€’ For each checklist, count:
β€’ Total items: All lines matching T383838- [ ] or T383838- [X] or T383838- [x]
β€’ Completed items: Lines matching T383838- [X] or T383838- [x]
β€’ Incomplete items: Lines matching T383838- [ ]
β€’ Create a status table:

T282828
| Checklist | Total | Completed | Incomplete | Status |
|-----------|-------|-----------|------------|--------|
| ux.md | 12 | 12 | 0 | βœ“ PASS |
| test.md | 8 | 5 | 3 | βœ— FAIL |
| security.md | 6 | 6 | 0 | βœ“ PASS |

β€’ Calculate overall status:
β€’ PASS: All checklists have 0 incomplete items
β€’ FAIL: One or more checklists have incomplete items

β€’ If any checklist is incomplete:
β€’ Display the table with incomplete item counts
β€’ STOP and ask: "Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)"
β€’ Wait for user response before continuing
β€’ If user says "no" or "wait" or "stop", halt execution
β€’ If user says "yes" or "proceed" or "continue", proceed to step 3

β€’ If all checklists are complete:
β€’ Display the table showing all checklists passed
β€’ Automatically proceed to step 3

3. Load and analyze the implementation context:
β€’ REQUIRED: Read tasks.md for the complete task list and execution plan
β€’ REQUIRED: Read plan.md for tech stack, architecture, and file structure
β€’ IF EXISTS: Read data-model.md for entities and relationships
β€’ IF EXISTS: Read contracts/ for API specifications and test requirements
β€’ IF EXISTS: Read research.md for technical decisions and constraints
β€’ IF EXISTS: Read .specify/memory/constitution.md for governance constraints
β€’ IF EXISTS: Read quickstart.md for integration scenarios

4. Project Setup Verification:
β€’ REQUIRED: Create/verify ignore files based on actual project setup:

Detection & Creation Logic:
β€’ Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):

T282828
git rev-parse --git-dir T79c0ff2>/dev/null


β€’ Check if Dockerfile* exists or Docker in plan.md β†’ create/verify .dockerignore
β€’ Check if .eslintrc* exists β†’ create/verify .eslintignore
β€’ Check if eslint.config.* exists β†’ ensure the config's T383838ignores entries cover required patterns
β€’ Check if .prettierrc* exists β†’ create/verify .prettierignore
β€’ Check if .npmrc or package.json exists β†’ create/verify .npmignore (if publishing)
β€’ Check if terraform files (*.tf) exist β†’ create/verify .terraformignore
β€’ Check if .helmignore needed (helm charts present) β†’ create/verify .helmignore

If ignore file already exists: Verify it contains essential patterns, append missing critical patterns only
If ignore file missing: Create with full pattern set for detected technology

Common Patterns by Technology (from plan.md tech stack):
β€’ Node.js/JavaScript/TypeScript: T383838node_modules/, T383838dist/, T383838build/, T383838*.log, T383838.env*
β€’ Python: T383838__pycache__/, T383838*.pyc, T383838.venv/, T383838venv/, T383838dist/, T383838*.egg-info/
β€’ Java: T383838target/, T383838*.class, T383838*.jar, T383838.gradle/, T383838build/
β€’ C#/.NET: T383838bin/, T383838obj/, T383838*.user, T383838*.suo, T383838packages/
β€’ Go: T383838*.exe, T383838*.test, T383838vendor/, T383838*.out
β€’ Ruby: T383838.bundle/, T383838log/, T383838tmp/, T383838*.gem, T383838vendor/bundle/
β€’ PHP: T383838vendor/, T383838*.log, T383838*.cache, T383838*.env
β€’ Rust: T383838target/, T383838debug/, T383838release/, T383838*.rs.bk, T383838*.rlib, T383838*.prof*, T383838.idea/, T383838*.log, T383838.env*
β€’ Kotlin: T383838build/, T383838out/, T383838.gradle/, T383838.idea/, T383838*.class, T383838*.jar, T383838*.iml, T383838*.log, T383838.env*
β€’ C++: T383838build/, T383838bin/, T383838obj/, T383838out/, T383838*.o, T383838*.so, T383838*.a, T383838*.exe, T383838*.dll, T383838.idea/, T383838*.log, T383838.env*
β€’ C: T383838build/, T383838bin/, T383838obj/, T383838out/, T383838*.o, T383838*.a, T383838*.so, T383838*.exe, T383838*.dll, T383838autom4te.cache/, T383838config.status, T383838config.log, T383838.idea/, T383838*.log, T383838.env*
β€’ Swift: T383838.build/, T383838DerivedData/, T383838*.swiftpm/, T383838Packages/
β€’ R: T383838.Rproj.user/, T383838.Rhistory, T383838.RData, T383838.Ruserdata, T383838*.Rproj, T383838packrat/, T383838renv/
β€’ Universal: T383838.DS_Store, T383838Thumbs.db, T383838*.tmp, T383838*.swp, T383838.vscode/, T383838.idea/

Tool-Specific Patterns:
β€’ Docker: T383838node_modules/, T383838.git/, T383838Dockerfile*, T383838.dockerignore, T383838*.log*, T383838.env*, T383838coverage/
β€’ ESLint: T383838node_modules/, T383838dist/, T383838build/, T383838coverage/, T383838*.min.js
β€’ Prettier: T383838node_modules/, T383838dist/, T383838build/, T383838coverage/, T383838package-lock.json, T383838yarn.lock, T383838pnpm-lock.yaml
β€’ Terraform: T383838.terraform/, T383838*.tfstate*, T383838*.tfvars, T383838.terraform.lock.hcl
β€’ Kubernetes/k8s: T383838*.secret.yaml, T383838secrets/, T383838.kube/, T383838kubeconfig*, T383838*.key, T383838*.crt

5. Parse tasks.md structure and extract:
β€’ Task phases: Setup, Tests, Core, Integration, Polish
β€’ Task dependencies: Sequential vs parallel execution rules
β€’ Task details: ID, description, file paths, parallel markers [P]
β€’ Execution flow: Order and dependency requirements

6. Execute implementation following the task plan:
β€’ Phase-by-phase execution: Complete each phase before moving to the next
β€’ Respect dependencies: Run sequential tasks in order, parallel tasks [P] can run together
β€’ Follow TDD approach: Execute test tasks before their corresponding implementation tasks
β€’ File-based coordination: Tasks affecting the same files must run sequentially
β€’ Validation checkpoints: Verify each phase completion before proceeding

7. Implementation execution rules:
β€’ Setup first: Initialize project structure, dependencies, configuration
β€’ Tests before code: If you need to write tests for contracts, entities, and integration scenarios
β€’ Core development: Implement models, services, CLI commands, endpoints
β€’ Integration work: Database connections, middleware, logging, external services
β€’ Polish and validation: Unit tests, performance optimization, documentation

8. Progress tracking and error handling:
β€’ Report progress after each completed task
β€’ Halt execution if any non-parallel task fails
β€’ For parallel tasks [P], continue with successful tasks, report failed ones
β€’ Provide clear error messages with context for debugging
β€’ Suggest next steps if implementation cannot proceed
β€’ IMPORTANT For completed tasks, make sure to mark the task off as [X] in the tasks file.

9. Completion validation:
β€’ Verify all required tasks are completed
β€’ Check that implemented features match the original specification
β€’ Validate that tests pass and coverage meets requirements
β€’ Confirm the implementation follows the technical plan
β€’ Report final status with summary of completed work

Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running T383838/speckit.tasks first to regenerate the task list.

10. Check for extension hooks: After completion validation, check if T383838.specify/extensions.yml exists in the project root.
β€’ If it exists, read it and look for entries under the T383838hooks.after_implement key
β€’ If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
β€’ Filter out hooks where T383838enabled is explicitly T383838false. Treat hooks without an T383838enabled field as enabled by default.
β€’ For each remaining hook, do not attempt to interpret or evaluate hook T383838condition expressions:
β€’ If the hook has no T383838condition field, or it is null/empty, treat the hook as executable
β€’ If the hook defines a non-empty T383838condition, skip the hook and leave condition evaluation to the HookExecutor implementation
β€’ For each executable hook, output the following based on its T383838optional flag:
β€’ Optional hook (T383838optional: true):
T282828
## Extension Hooks

**Optional Hook**: {extension}
Command: \`/{command}\`
Description: {description}

Prompt: {prompt}
To execute: \`/{command}\`
β€’ Mandatory hook (T383838optional: false):
T282828
## Extension Hooks

**Automatic Hook**: {extension}
Executing: \`/{command}\`
EXECUTE_COMMAND: {command}
β€’ If no hooks are registered or T383838.specify/extensions.yml does not exist, skip silently

Served by rngit 1.5.1 - Generated in 0.04s